#!/bin/bash

# 更新包列表并安装vsftpd
sudo apt update
sudo apt install -y vsftpd

# 备份配置文件
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

# 配置vsftpd
sudo bash -c 'cat > /etc/vsftpd.conf <<EOF
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
pasv_address=$(curl -s ifconfig.me)
pasv_addr_resolve=YES
pasv_promiscuous=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
tcp_wrappers=YES
EOF'

# 创建用户列表文件并添加用户
sudo touch /etc/vsftpd.user_list
echo "apple" | sudo tee -a /etc/vsftpd.user_list

# 重启vsftpd服务
sudo systemctl restart vsftpd

# 配置防火墙允许FTP流量
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload

# 创建FTP用户并设置密码
sudo adduser apple --gecos "FTP User,,," --disabled-password
echo "apple:779604436" | sudo chpasswd

# 禁用密码复杂性检查
sudo sed -i 's/^password\s*requisite\s*pam_cracklib.so/#&/' /etc/pam.d/common-password

# 创建默认上传文件目录并设置权限
sudo mkdir -p /home/apple/ftp
sudo chown apple:apple /home/apple/ftp

# 开机运行
sudo systemctl enable vsftpd

# 输出有用的信息
echo "FTP服务已成功搭建并启动。"
echo "FTP用户: apple"
echo "FTP用户密码: 779604436"
echo "请根据需要修改用户密码: sudo passwd apple"
echo "FTP服务运行在端口: 21"
echo "被动模式端口范围: 40000-50000"
echo "默认上传文件目录: /home/apple/ftp"